package ufc.web.funcoes;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.Vector;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import ufc.web.conexaoBD.ConnectionFactory;
import ufc.web.objetos.Livros;

public class Paginacao implements Acao {
	int limit;
	int offset;

	public List<Livros> consulta(){
		List<Livros> listaLivros = new Vector<Livros>();
		
		try{
			String consulta = "select * from livro limit 3 offset "+ offset ;
			Connection con = ConnectionFactory.getConnection();
			PreparedStatement ps = con.prepareStatement(consulta);
			
			ResultSet res = ps.executeQuery(); 
			
			while(res.next()){
				Livros livros = new Livros();
				livros.setId(res.getInt("id"));
				livros.setTitulo(res.getString("titulo"));
				livros.setAutor(res.getString("autor"));
				livros.setValor(res.getDouble("valor"));
				livros.setISBN(res.getString("ISBN"));
				
				listaLivros.add(livros);
			}
			
			con.close();
			ps.close();
			}catch(SQLException e){
				System.out.println(e.getMessage());
			}
			
			
			return listaLivros;
	}
	
	@Override
	public void executa(HttpServletRequest request, HttpServletResponse response) {
		List<Livros> listaLivros;
		int limite = 3;
		int numeroPagina = Integer.parseInt(request.getParameter("numero"));
		if(request.getParameter("numero")==null){
			numeroPagina = 1;
		}
		System.out.println(limite);
		HttpSession sessao;
		RequestDispatcher dispachante;
		sessao = request.getSession();
		offset = ( limite * numeroPagina) - limite; 
		listaLivros = consulta();
		
		try {
			sessao.setAttribute("listaLivros", listaLivros);
			//request.setAttribute("listaLivros", listaLivros);
			sessao.setAttribute("isPaginacao", "paginacao");
			dispachante = request.getRequestDispatcher("/Livros.jsp");
			dispachante.forward(request, response);
			
		} catch (IOException | ServletException e) {
			e.printStackTrace();
			
		}

	}

}
